Package kr.inamatrix.danguscore.client.login

Source Code of kr.inamatrix.danguscore.client.login.LoginServiceForm

/**
*
*/
package kr.inamatrix.danguscore.client.login;

import java.util.logging.Logger;

import kr.inamatrix.danguscore.client.gamer.RegistGamerForm;
import kr.inamatrix.danguscore.client.main.MainViewport;

import com.extjs.gxt.ui.client.Style.HorizontalAlignment;
import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.form.FormButtonBinding;
import com.extjs.gxt.ui.client.widget.form.FormPanel;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.google.gwt.core.client.GWT;

/**
* Title: LoginWindow.java<br>
* Description: 로그인 서비스를 하는 form panel<br>
* Copyright: Copyright(c) 2012 Inamatrix ALL Rights Reserved<br>
*
* @author Jonghwa, Lee
* @version 1.0
* @created 2012. 1. 26.
* @modified 2012. 1. 26.
*/
public class LoginServiceForm extends FormPanel {
    private static final Logger logger = Logger.getLogger(LoginServiceForm.class.getName());
   
    private static LoginServiceForm instance;
   
    private TextField<String> _name;
    private TextField<String> _password;
   
    private Button _login;
    private Button _regist;
   
    private LoginServiceDelegate _loginServiceDelegate = new LoginServiceDelegate();
   
    private LoginServiceForm() {
        initialize();
    }
   
    public static final LoginServiceForm newInstance() {
        return getInstance();
    }
   
    public static final LoginServiceForm getInstance() {
        if (instance == null) {
            instance = new LoginServiceForm();
        }
        return instance;       
    }
   
    private void initialize() {
        logger.fine("initialize() start");
        setButtonAlign(HorizontalAlignment.CENTER);
        setLabelAlign(LabelAlign.LEFT);
        setFrame(true);
        setHeading("Login");
        setSize(320, 140);
       
        add(getNameTextfield());
        add(getPasswordField());
        addButton(getLoginButton());
        addButton(getRegistButton());
        bindingButtonWithForm();
        logger.fine("initialize() end");
    }
   
    private void bindingButtonWithForm() {
        FormButtonBinding binding = new FormButtonBinding(this);
        binding.addButton(_login);
    }
   
    private TextField<String> getNameTextfield() {
        if ( _name == null ) {
            _name = new TextField<String>();
            _name.setFieldLabel("Name");
            _name.setAllowBlank(false);
        }
        return _name;
    }
   
    private TextField<String> getPasswordField() {
        if ( _password == null ) {
            _password = new TextField<String>();
            _password.setFieldLabel("Password");
            _password.setPassword(true);
            _password.setAllowBlank(false);
        }
        return _password;
    }
   
    private Button getLoginButton() {
        if ( _login == null ) {
            _login = new Button("로그인");
            _login.addSelectionListener(new SelectionListener<ButtonEvent>() {
                @Override
                public void componentSelected(ButtonEvent ce) {
                    logger.info("login button clicked.");
                    _loginServiceDelegate.login(_name.getValue(), _password.getValue());
                }
            });
        }
        return _login;
    }
   
    private Button getRegistButton() {
        if ( _regist == null ) {
            _regist = new Button("선수등록");
            _regist.addSelectionListener(new SelectionListener<ButtonEvent>() {
                @Override
                public void componentSelected(ButtonEvent ce) {
                    logger.info("regiest button clicked.");
                    processRegistGamer();
                }
            });
        }
        return _regist;
    }

    /**
     *
     */
    public void processLoginSuccess() {
        // TODO : show success message and change the page.
    }

    private void processRegistGamer() {
        GWT.log("processRegistGamer()");
        MainViewport.getInstance().setView(new RegistGamerForm());
    }
   
    /**
     * @param caught
     */
    public void showLoginErrorMessage(Throwable caught) {
        MessageBox.alert("Login", "이름 또는 비밀번호가 틀립니다.", null);
    }

    /**
     *
     */
    public void showLoginFailed() {
        MessageBox.alert("Login", "이름 또는 비밀번호가 틀립니다.", null);
    }
}
TOP

Related Classes of kr.inamatrix.danguscore.client.login.LoginServiceForm

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.